<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>部门管理</title>
    <#-- 使用相对当前模板文件的路径 再去找另一个模板文件 -->
    <#--用于引入另外的模板文件,即每次请求把公共的部分抽出来(变化的只是数据库的数据),这边引入-->
    <#--这边会拼接成/WEN-INF/views/common/link.ftl-->
    <#include "/common/link.ftl">

</head>
<body class="hold-transition skin-black sidebar-mini">
<div class="wrapper">
    <#include "/common/navbar.ftl">
    <!--定义一个变量  用于菜单回显-->
    <#assign currentMenu="department"/>

    <#include "/common/menu.ftl">
    <div class="content-wrapper">
        <section class="content-header">
            <h1>部门管理</h1>
        </section>
        <section class="content">
            <div class="box">
                <!--高级查询--->
                <form class="form-inline" id="searchForm" action="/department/list" method="post">
                    <input type="hidden" name="currentPage" id="currentPage" value="1">
                    <a href="#" class="btn btn-success btn-input" style="margin: 10px">
                        <span class="glyphicon glyphicon-plus"></span> 添加
                    </a>
                </form>
                <!--编写内容-->
                <div class="box-body table-responsive ">
                    <table class="table table-hover table-bordered table-striped">
                        <thead>
                        <tr>
                            <th>编号</th>
                            <th>部门名称</th>
                            <th>部门编号</th>
                            <th>操作</th>
                        </tr>
                        </thead>
                        <tbody>

                        <#--获取到控制层的数据并循环遍历-->
                        <#list pageInfo.list as dept>
                            <tr>
                                <#--dept_index即上面遍历的索引-->
                                <td>${dept_index+1}</td>
                                <td>${dept.name}</td>
                                <td>${dept.sn}</td>
                                <td>
                                    <#--编辑回显时,顺便将数据信息绑定再按钮上
                                        直接从按钮上获取数据用于回显,一般直接存一个对象
                                        可以使用data-json标签data-json="${dept}
                                        但这样存的本质时调用toString方法,不符合JSON格式
                                        可以再domain提供一个方法将java对象转为JSON对象
                                        此外需要注意的是:data-json=''必须使用单引号,因为里面存的是JSON格式字符串,里面都是双引号,防止混乱
                                    -->
                                    <a href="#" class="btn btn-info btn-xs btn-input" data-json='${dept.toJson()}'>
                                        <span class="glyphicon glyphicon-pencil"></span> 编辑
                                    </a>
                                    <a class="btn btn-danger btn-xs btn-delete" data-url="/department/delete?id=${dept.id}">
                                        <span class="glyphicon glyphicon-trash"></span> 删除
                                    </a>
                                </td>
                            </tr>
                        </#list>

                        </tbody>
                    </table>
                    <!--分页-->
                    <#include "/common/page.ftl" >
                </div>
            </div>
        </section>
    </div>
    <#include "/common/footer.ftl" >
</div>

<#--给上面的添加和编辑按钮绑定点击事件
    使用获取class的一个值绑定,因为class不重复,可以绑定多个
-->
<script>
    $('.btn-input').click(function () {
        //由于每次点击都会再模态框设值,设值一次以后再次点击添加会发现之前编辑回显的值还在
        //因此每次触发点击事件时,需要先清空所有的回显值
        //即根据id获取模态框,然后找到底下的所有input标签对象,设置value为空值''
        $('#myModal input').val('');

        //从按钮中获取数据 使用this其实就是哪个按钮触发了点击事件this就是哪个
        var $dept = $(this).data('json');

        //先判断是添加还是编辑,如果$dept有值,不为null,即可执行回显,否则直接show模态框

        if($dept){
            //是编辑,获取值并回显,此外还需要设置id,只有编辑才有id,业务层也是根据是否有id来决定时添加还是编辑
            $('input[name=id]').val($dept.id);
            $('#name').val($dept.name);
            $('#sn').val($dept.sn);
        }

        /*下面引入了模态框,即点击以后就弹到模态框,即找到并显示模态框
        * 根据id获取模态框对象并show出来*/
        $('#myModal').modal('show');
    });

</script>

<!-- 模态框 -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <h4 class="modal-title" id="myModalLabel">部门新增和修改</h4>
            </div>
            <form class="form-horizontal" method="post" action="/department/saveOrUpdate">
                <#--此处还应该有个隐藏的id值,用于区分时新增还是查询-->
                <input type="hidden" name="id">
                <div class="modal-body">
                    <div class="form-group">
                        <label for="name" class="col-sm-2 control-label">部门名称</label>
                        <div class="col-sm-10">
                            <#--注意的是,提交以后是根据这个标签的name属性和填写的value值封装到java对象的
                                一定不能忘了添加name属性
                            -->
                            <input type="text" name="name" class="form-control" id="name" placeholder="请输入部门名称">
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="sn" class="col-sm-2 control-label">部门缩写</label>
                        <div class="col-sm-10">
                            <input type="text" name="sn" class="form-control" id="sn" placeholder="请输入部门缩写">
                        </div>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
                    <button type="submit" class="btn btn-primary">保存</button>
                </div>
            </form>
        </div>
    </div>
</div>

</body>
</html>
